package negocio.daos;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import negocio.entidades.Conteudo;
import negocio.entidades.Questao;

public class ConteudoDAO {
	private EntityManager em;
	
	public ConteudoDAO(EntityManager em){
		this.em = em;
	}
	
	public Conteudo salvar(Conteudo c) throws Exception{
		if (c.getId() > 0) {
			if (consultarPorId(c.getId()) != null) {
				em.merge(c);
			}
		} else {
			em.persist(c);
		}
		return c;
	}
	
	public void excluir(long id) throws Exception{
		Conteudo c = consultarPorId(id);
		if (c != null){
				em.remove(c);
		}	
	}
	
	@SuppressWarnings("unchecked")
	public List<Conteudo> listar(String descricao){
		Query q = em.createQuery("select c from Conteudo c where c.descricao like lower('%"+descricao+"%')", Questao.class);
		return q.getResultList() ;
	}
	
	public Conteudo consultarPorId(long id){
		Conteudo c = (Conteudo) em.createQuery(
				"select c from Conteudo c where c.id =" + id).getSingleResult();
		return c;
	}
}
